﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    public class Solution19
    {
        public bool CanJump(int[] nums)
        {
            if (nums.Length == 0)
            {
                return false;
            }
            if (nums[0] == 0 && nums.Length == 1)
            {
                return true;
            }
            //能够跳跃的最远的距离
            int far = -1;
            for (int i = 0; i < nums.Length; i++)
            {
                if (nums[i] > far)
                {
                    far = nums[i];
                }
                if (far >= nums.Length - i - 1)
                {
                    return true;
                }
                if (far == 0)
                {
                    break;
                }
                //因为i++要向前移动了一个位置，所以far值相应的减少一个
                far--;
            }
            return false;
        }
    }
}
